#include<bits/stdc++.h>

using namespace std;

/**
 * 计算组合数的优化算法
 * @param n
 * @param r
 * @return
 */
long long cnr(int n, int r) {
    if (2 * r > n) {
        r = n - r;
    }
    long long p = 1;
    for (int i = n; i >= n - r + 1; i--) {
        p = p * i;
    }
    for (int i = 2; i <= r; i++) {
        p /= i;
    }
    return p;

}

int main() {
    cout << cnr(28, 14) << endl;

    return 0;
}
